#ifndef DATA_BROADCAST_H
#define DATA_BROADCAST_H

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <arpa/inet.h>

#define MAX_ACCOUNT_LEN 50  // 账号最大长度
#define MAX_MSG_LEN    256 // 消息最大长度
#define SERVER_PORT    8888// 服务端监听端口
#define SERVER_IP      "127.0.0.1" // 服务端IP（本地测试用）
#define BROADCAST_FILE "broadcast_messages.txt" // 存储广播消息的文件

// 消息类型
typedef enum {
    MSG_BROADCAST = 1,    // 广播消息
    MSG_NORMAL            // 普通消息
} MsgType;

// 网络消息结构体
typedef struct {
    MsgType type;           // 消息类型
    char sender[MAX_ACCOUNT_LEN]; // 发送方账号
    char content[MAX_MSG_LEN];     // 消息内容
} NetMsg;

// 服务端相关函数声明
int save_broadcast_to_file(const char *sender, const char *message);
int data_broadcast(int *client_socks, int client_count, const char *sender, const char *message);

// 客户端相关函数声明
int receive_broadcast(int client_sock, NetMsg *received_msg);
void display_broadcast(const NetMsg *msg);

#endif // DATA_BROADCAST_H
